A received code modulated signal has to be acquired for example in CDMA (Code Division Multiple Access) spread spectrum communications.
For a spread spectrum communication in its basic form, a data sequence is used by a transmitting unit to modulate a sinusoidal carrier and then the bandwidth of the resulting signal is spread to a much larger value. For spreading the bandwidth, the single-frequency carrier can be multiplied for example by a high-rate binary pseudo-random noise (PRN) code sequence comprising values of −1 and 1, which code sequence is known to a receiver. Thus, the signal that is transmitted includes a data component, a PRN component, and a sinusoidal carrier component. A PRN code period comprises typically 1023 chips, the term chips being used to designate the bits of the code conveyed by the transmitted signal, as opposed to the bits of the data sequence.
A well known system which is based on the evaluation of such code modulated signals is GPS (Global Positioning System). In GPS, code modulated signals are transmitted by several satellites that orbit the earth and received by GPS receivers of which the current position is to be determined. Each of the satellites transmits currently two microwave carrier signals. One of these carrier signals L1 is employed for carrying a navigation message and code signals of a standard positioning service (SPS). The L1 carrier signal is modulated by each satellite with a different C/A (Coarse Acquisition) Code known at the receivers. Thus, different channels are obtained for the transmission by the different satellites. The C/A code, which is spreading the spectrum over a 1 MHz bandwidth, is repeated every 1023 chips, the epoch of the code being 1 ms. The carrier frequency of the L1 signal is further modulated with the navigation information at a bit rate of 50 bit/s. The navigation information, which constitutes a data sequence, can be evaluated for example for determining the position of the respective receiver.
A receiver receiving a code modulated signal has to have access to a synchronized replica of the employed modulation code, in order to be able to de-spread the data sequence of the signal. More specifically, a synchronization has to be performed between the received code modulated signal and an available replica code. Usually, an initial synchronization called acquisition is followed by a fine synchronization called tracking. In both synchronization scenarios, correlators are used to find the best match between the replica code and the received signal and thus to find their relative shift called code phase. A correlator basically aligns an available replica code with the received signal using a respective code phase, multiplies the received signal sample-wise with the aligned replica code and integrates the results to obtain a correlation value for this code phase. The code phase resulting in the highest correlation value can then be assumed to be the correct code phase, if the correlation value exceeds moreover a predetermined threshold value. The match can be determined for example with chip accuracy. If an accuracy of a fraction of a chip is needed, the chip can be presented by several samples after an analog-to-digital conversion.
During the acquisition, the phase of the received signal relative to the available replica code can have any possible value due to uncertainties in the position of the satellite and the time of transmission of the received signal.
Moreover, an additional frequency modulation of the received signal may occur, which can be as large as +/−6 kHz, for example due to a Doppler effect and/or a receiver clock inaccuracy. The search of the code phase is therefore usually performed with different assumptions on an additional frequency modulation. For a sensitivity increase, in particular for weak signal environments like indoor environments, a receiver normally uses long integrations that require the frequency uncertainty to be as small as a few Hz. Therefore, even with the aligned code, a large number of frequency assumptions should be checked.
The initial acquisition is thus a two-dimensional search in code phase and frequency. Many different parallel architectures, time multiplexing and off-line processing approaches have been presented so far for the acquisition of received code modulated signals.
For illustration, FIG. 1 presents a schematic block diagram of one path of an acquisition module of a conventional receiver, in which a matched filter is employed for performing correlations.
In the receiver, received samples are mixed by a mixer 11 with one of various search center frequencies ejωt. The mixed samples are then decimated by a decimation block 12 in accordance with a provided code frequency. The mixed and decimated samples are provided to a matched filter 13 to find out the code phase, or delay, of the received signal compared to an available replica code. The matched filter 13 compares the received samples with an available code in parallel for various code phases between the signal samples and the available code and outputs a correlation value for each code phase. Then, it continues with new samples of the received signal.
The output of the matched filter 13 for a respective checked code phase is provided to a Discrete Fourier Transform (DFT) bank 14 to determine in addition the Doppler frequency in the received signal. The DFT bank 14 mixes to this end the respective output of the matched filter 13 in parallel with a plurality of possible Doppler frequencies ejω1t, ejω2t, etc., e−jω1t, e−jω2t, etc. The results for each possible Doppler frequency are added to a coherent memory 15 for a coherent integration of the correlation values. The coherent memory 15 is structured in the form of a table which comprises one column for each code phase checked by the matched filter 13, and one row for each DFT bin.
A processing component 16 then forms the sum over the squared I and Q components for each entry in the coherent memory 15.
A further provided non-coherent memory 17 is structured in the same way as the coherent memory 15. The output of the processing portion 16 is added to a respective field in the non-coherent memory 17 for an additional non-coherent integration. After the non-coherent integration length, it comprises final correlation values for any combination of the checked code phases and the checked Doppler frequencies.
The entries in the non-coherent memory 17 are then evaluated in a decision module (not shown). The correct code-phase and the correct frequency modulation compensation result in a larger integration value than an incorrect code-phase and/or an inappropriate frequency modulation compensation. Thus, detecting the maximum correlation value in the non-coherent memory 17 and comparing it with a certain threshold enables the decision module to find the correct code phase and the correct frequency of modulation.
Some GPS receivers may receive assistance data from some other unit, in particular from a wireless communication network. Such assistance data may include for instance a reference position, an accurate time or navigation data belonging to certain satellites, for supporting the assisted GPS receiver in acquiring satellite signals. Modern assisted GPS receivers search for up to eight satellites in parallel from full code uncertainty.
In assisted GPS receivers without an accurate time assistance, it is a particular challenge to acquire the signal of a first satellite.
If the code phase of one satellite signal is known, then code phases for other satellite signals can be predicted based on information from measurements on the first satellite signal, including code phase and Doppler frequency.
Such a prediction has been described for example in the U.S. Pat. No. 6,133,874. Here, it is assumed that a receiver has acquired a first satellite signal in a conventional manner, and that the code phase for this signal is thus known. In addition, a reference position, a reference time and the approximate position of other satellites versus time are assumed to be known. The approximate position of a satellite can be known for instance from available Almanac data for this satellite. All information may be provided for example by a mobile communications network as assistance data to the receiver.
The time of arrival of the first satellite signal has been determined to be T1. The assumed time of arrival of a second satellite is T2 and can then be determined relative to the time T1 to be (T2−T1)=(R2−R1)/c, where R1 is the range between the position of the first satellite and the receiver, where R2 is the range between the position of the second satellite and the receiver, and where c is the speed of light. The pseudo range to a respective satellite can be determined as the difference between the respective available satellite position and the available reference location.
Since the code phase for the acquired first satellite signal is known, the code phase for the second satellite signal can be predicted to correspond to the code phase for the acquired first satellite signal plus the difference in the time of arrival of both signals (T2−T1). The code phase for further satellite signals can be predicted in a corresponding manner.
In addition, an uncertainty range for this prediction can be determined, as will be explained in the following. The uncertainty range can then be used to determine a prediction interval in which the code phases for the other satellite signals should lie, and the prediction interval can be used as a limited search range.
The maximum Line-Of-Sight (LOS) satellite speed is about 1 km/s, while the average is approximately 0.5 km/s. The maximum Doppler change is about 1 Hz/s. An urban WCDMA network, for instance, can provide a reference position as assistance data with an accuracy of less than 3 km, while the average accuracy is about 1 km. The accuracy of a time provided as assistance data is about 3 s in most wireless communication networks.
Based on these assumptions, the average uncertainty range for the code phases for other satellite signals can be predicted. A time error of 3 s results in a code prediction error of 1.5 km due to the LOS speed. A reference position error of 1 km results in a maximum code prediction error of +/−1 km. On average, the total code phase prediction error is thus smaller than 2.5 km. This means that code phases for the remaining satellite signals can be predicted with an average error of approximately 8 μs. The Doppler prediction is anyhow accurate to a few Hz.
The limited search range for the rest of the satellite signals results in a faster acquisition of these signals and enables moreover a detection of weaker signals.
In some situations, however, all satellite signals are so weak that even the correlation values for the strongest satellite signal level lie below the predetermined detection threshold value. In this case, none of the satellites can be found.
It has to be noted that a similar problem may occur with any other receiver of code modulated signals, in particular with any receiver of another Global Navigation Satellite System (GNSS), like the European satellite navigation system Galileo or Glonass.